package br.unip.tcc.domotic.util;

import javax.faces.component.EditableValueHolder;
import javax.faces.component.UIComponent;
import javax.faces.component.UIViewRoot;
import javax.faces.context.FacesContext;

public class FacesUtils {
	
	public static void cleanSubmittedValues() {
		FacesContext facesContext = FacesContext.getCurrentInstance();   
		UIViewRoot uiViewRoot = facesContext.getViewRoot();   
		cleanUIComponentValues(uiViewRoot);
	}
	
	private static void cleanUIComponentValues(UIComponent component) {
		if (component instanceof EditableValueHolder) {
			EditableValueHolder evh = (EditableValueHolder) component;
			evh.setSubmittedValue(null);
			evh.setValue(null);
			evh.setLocalValueSet(false);
			evh.setValid(true);
		}
		if(component.getChildCount()>0){
			for (UIComponent child : component.getChildren()) {
				cleanUIComponentValues(child);
			}
		}
	}
	
}
